Python 的文件类型

        Python 的使用我们可以用解释器交互方式 python 和 ipython,也可以建立一个程序文件。

1.源代码

        Python 源代码文件以 “py” 为扩展名,由 Python 程序解释,不需要编译。

1
[root@192 day01]# vim 1.py

        写入内容

1
2
#!/usr/bin/python
print 'hello world'

        注意:第一行必须写 #!/usr/bin/python ,因为第一行表示用什么解释器来解释文件,如果不写就是以 bash 解释。

1
2
3
4
5
[root@192 day01]# python 1.py
hello world
[root@192 day01]# chmod u+x 1.py
[root@192 day01]# ./1.py
hello world

        Python 的执行和 bash 很相似。

2.字节代码

        Python 源码文件经编译后生成的扩展名为 “pyc” 的文件

编译方法:

import py_compile
py_compile.compile(‘hello.py’)

        创建文件

1
[root@192 day01]# vim 2.py

写入内容

1
2
3
4
5
#!/usr/bin/python
import py_compile
py_compile.compile('1.py')

        执行

1
[root@192 day01]# python 2.py

        发现执行以后什么输出都没有

iamges

        ls 查看

images

        发现多了一个 1.pyc ,这个 1.pyc 就是对 1.py 进行编译
后产生。
        查看文件类型

1
2
[root@192 day01]# file 1.pyc
1.pyc: python 2.6 byte-compiled

        显示被字节编译过
        查看 1.pyc 文件,发现是二进制文件

images

        执行

1
2
[root@192 day01]# python 1.pyc
hello world

3.优化代码

        经过优化的源码文件,扩展名为 “pyo”

编译方法:

python -o -m py_compile hello.py
-O 表示优化
-m 表示模块

1
[root@192 day01]# python -O -m py_compile 1.py

images

        生成一个 1.pyo 的文件。1.pyo 也是经过编译的,只是多了有一个优化。

        执行

1
2
[root@192 day01]# python 1.pyo
hello world

        如果不想让别人查看源码文件就可以把源码文件编译成 pyc 或 pyo 的文件,不过建议使用源码文件。